home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Columbia Kermit
/
kermit.zip
/
newsgroups
/
misc.19950528-19950726
/
000289_news@columbia.edu_Sun Jul 9 18:03:54 1995.msg
< prev
next >
Wrap
Internet Message Format
|
2020-01-01
|
13KB
Received: from apakabar.cc.columbia.edu by watsun.cc.columbia.edu with SMTP id AA07743
(5.65c+CU/IDA-1.4.4/HLK for <kermit.misc@watsun.cc.columbia.edu>); Sun, 9 Jul 1995 14:03:58 -0400
Received: by apakabar.cc.columbia.edu id AA14199
(5.65c+CU/IDA-1.4.4/HLK for kermit.misc@watsun); Sun, 9 Jul 1995 14:03:56 -0400
Path: news.columbia.edu!watsun.cc.columbia.edu!fdc
From: fdc@watsun.cc.columbia.edu (Frank da Cruz)
Newsgroups: comp.protocols.kermit.misc,comp.dcom.modems
Subject: Portable Dialing Directory Design
Date: 9 Jul 1995 18:03:54 GMT
Organization: Columbia University
Lines: 237
Message-Id: <3tp5ma$drl@apakabar.cc.columbia.edu>
Nntp-Posting-Host: watsun.cc.columbia.edu
Cc:
Xref: news.columbia.edu comp.protocols.kermit.misc:3124 comp.dcom.modems:101472
[Note: I posted this before, but it did not seem to "take". Apologies
in advance if it appears twice.]
Hi everybody. I'm posting this message to some lists I don't usually
inhabit, as well as to some familiar ones, so let me begin by explaining
that I'm the principle author of C-Kermit communications software; I am
working on improving its modem and dialing support and need some guidance
and opinions from people who know more about telephony than I do.
For a dialing directory to be "portable", it should work no matter where
you are calling from: the local calling area (a local call), a different
calling area (a long-distance call), another country (an international
call), etc, and from a phone that is directly on the telephone system as
well as from a hotel room or office where you must dial a special code to
get an "outside line", and also irrespective of your long-distance carrier
(in countries like the USA, where you have a choice), and also whether or
not you are billing the call to the calling phone or to a calling-card or
credit-card number, all this independently of any particular features or
limitations of the modem (e.g. maximum command or phone-number length) or
the telephone system (e.g. availability of Touch Tone (tm) dialing).
It seems to me that given the diverse formats for telephone numbers all
over the world, the diversity of calling procedures (e.g. when using
different long-distance dialing methods in the USA, such as "1" vs
"10-xxx" vs "1-800-xxx-yyyy" and then answering a bunch of questions),
that there is no way to have a dialing directory feature that is simple
enough for most people to understand, at least not without building a
gigantic knowledge base into the software that is guaranteed to be
obsolete the moment the software is released due to the constantly
changing telephony landscape, or else without launching a lengthy
inquisition of the user each time a number is to be dialed.
Here is what we have so far in the working copy of C-Kermit:
1. The DIAL command, e.g. "dial foo". If "foo" is found in the dialing
directory, it is replaced by the associated number; otherwise it is
dialed literally (a feature that allows the user to totally bypass
the dialing directory).
2. The DIAL METHOD, Tone, pulse, or unspecified. Kermit uses its knowledge
of the particular modem to dial using the specified method. Perfectly
straightforward.
3. The DIAL PREFIX. This is used for specifying a code to be dialed in
order to get an outside line, e.g. when dialing from a PBX or hotel room.
In other words, this is a prefix to be ADDED to the beginning of the
phone number that is extracted from the dialing directory.
4. The DIAL LOCAL-AREA-CODE. This is a prefix to be REMOVED from the
beginning of a phone number from the dialing directory, if the number
begins with this prefix. This lets you include area codes in all
numbers and have them stripped automatically when it is a local call,
but kept on when you are travelling and it is a long-distance call.
(The DIAL PREFIX is added after this step, unconditionally.)
Rationale: In the USA, at least, one normally may not dial a local call as
if it were a long-distance call (doing so results in an error tone or
message). Thus, the "country" and area codes (e.g. "1-212") must be
stripped before dialing a number in the same area code, but must be
included when dialing the same number from a different area code.
But... In some area codes, such as Westchester Country in New York State,
one may (must) use a short number (no "1" or area code) for calls in one's
own town, but a long-distance form (1 914 xxx-xxxx) for calls in the same
area code but outside of one's own town.
Another difficulty we face is that to dial a long-distance number in the USA,
we start with "1", but to dial the same number from outside the USA, we might
have to dial (say) "001". Similarly, area codes in countries like Germany
and England might start with "0", but when dialing them from the USA, leading
zeroes must be omitted. (Perhaps this is just a different way of saying
that the long-distance dialing prefix in Germany or England is "0").
Now, without redesigning Kermit's dialing directory to be some kind of
WIN.INI- or NET.CFG-style monstrosity, or invent a programming language
for writing dialing directories (since dialing is no longer simply the
entry of a number, but a procedure that varies with the context), and
without imbedding within the Kermit code any knowledge about any
particular dialing system or telephone-number format (which, if it were
done, would wind up favoring some countries or carriers over others), the
question is: how much can we accomplish using Kermit's current
dialing-directory format and dialing facilities?
If a person always dials from the same place, then each number can be
entered in the dialing directory in exactly the way the person dials it:
local, long-distance, tie-line, internal PBX number, etc. That is what we
had before, and it works for most people.
But to meet the needs of those who travel around with their dialing
directories, or for that matter to construct dialing directories which
themselves are portable, e.g. to be shipped to people in diverse locations
throughout the world, what is the least amount of complexity and
"knowledge" we can get away with?
Let's assume (and, in fact, recommend) that all entries in a portable
dialing directory be in a uniform format:
1. Numbers within the country where one normally dials from are entered
in the long-distance-dialing format for one's own country, and this
applies also to numbers that are normally dialed locally, for example
1-212-765-4321 for a USA number dialed from within the USA.
2. Numbers outside the country from which one normally dials are entered
prefixed by the code for international dialing, e.g. 011 in the USA, and
then the country code, e.g. 49 for Germany.
Now let's assume (this is entirely fictitious):
1. I work in Manhattan, New York City (USA), area "212".
2. I live in White Plains, New York State (USA), area "914".
3. I sometimes travel to Hannover, Germany, bringing a laptop.
The object of the game is to have only one dialing directory that works in
all situations.
Let's assume my dialing directory is as follows. Please bear in mind that
I don't understand non-North-American phone numbers very well, since as
far as I can tell, and unlike North American phone numbers, most of them
seem to have variable-length fields -- for example, in Germany, the area
code for Frankfurt seems to be 69, for Hannover 511, and for Marburg 6421,
and then length of the part after the area code seems to vary also. So
here is the text of a short sample dialing directory (ignoring the other
items a dialing directory might contain, because we are concentrating only
on the phone numbers, and bearing in mind that a real dialing directory
might be much longer, and might contain entries from many countries and
areas within countries):
OFFICE 1-212-765-4321
INTERNET 1-212-555-1234
HOME 1-914-987-6543
NYACK 1-914-876-5432
HANNOVER 011-49-511-54-32-1
HANNOVER2 011-49-511-65-43-2
MARBUG 011-49-6431-76-54-3
FRANKFURT 011-49-69-87-65-4
Given all this, then:
1. At work I "set dial local-area-code 1-212".
This will strip "1-212" from any numbers in my dialing directory
before dialing the phone. All other numbers are dialed exactly as
they are recorded. Thus if I "dial internet" from my office,
it is dialed as "555-1234", but if I "dial nyack", it is dialed as
"1-914-876-5432", and if I "dial hannover" it is dialed as
"011-49-511-54-32-1".
2. At home I "set dial local-area-code 1-914".
This will strip "1-914" from any numbers in my dialing directory
before dialing the phone. Thus if I "dial nyack", it is dialed as
"876-5432", which, unfortunately, won't work, because Nyack is outside
of the White Plains local calling area, EVEN THOUGH IT IS IN THE SAME
AREA CODE ( which means we need to incorporate the notion of a
"local-area-code-stripping-override mechanism" of some sort on a
per-call basis )-:
3. When in Hannover with my laptop, I "set dial local-area-code 011-49-511".
This allows me to make local calls in Hannover; for example, to HANNOVER2.
But now if I want to make a long-distance call within Germany, I must
change to "set dial local-area-code 011-49" and I must also (I think) "set
dial prefix 0", because when dialing long distance WITHIN Germany, the
area code needs a single "0" on the front (right?). Now I can "dial
marburg" or "dial frankfurt". But, if I want to "dial office" from
Germany, then I must "set dial prefix 00" so that "1 212" will become "001
212" (assuming that is the way one dials the USA from Germany).
4. Paragraph (3) assumes I am in the branch office in Hannover, which is
connected directly to the Bundesfernsprechersystem (???). But in the
evening I go to my hotel, and from there I must dial "77" to get an
outside line. In this case, all of paragraph (3) applies, except I must
also "set dial prefix 77" for local calls, "set dial prefix 770" for
long-distance calls within Germany, and "set dial prefix 7700" for
international calls.
Now all of this is quite complex already. Is there a chance in the world
that anybody will remember these points or use these features? Is there any
way to make them simpler? If so, it is not obvious to me.
One idea that suggests itself is to separate the notions of:
1. Prefix for long distance calls within the country I am in.
2. Prefix for calling outside the country I am in.
3. The area code of the area I am in.
4. Country code of the country I am in.
5. Country code for dialing in to each country from outside.
6. Area codes within any given country.
Each entry in a portable dialing directory would contain items 5 and 6,
whereas the user would have to "set" items 1 through 4 in order to dial at
all. Which does not strike me as a simplification.
Now let's add to all this the complication arising when one has a choice
among several long-distance carriers and/or billing methods. It seems to
me that the entire notion of a dialing directory begins to break down,
since there is no longer a standard format for a telephone number, nor a
standard procedure for dialing it. In some cases, the procedure strains
the capabilities of most modems and software -- for example, by engaging
in a voice dialog in which one waits for a spoken question and then, only
after the question has been asked, one enter a DTMF or other response.
Unless I am mistaken (which is quite possible) there is no simple and
portable abstraction for a complete calling sequence, which may consist
of:
. prefix to get an outside line (maybe)
. dialing prefix (local, long-distance, international, tie-line, etc)
. long-distance-carrier access code (or not)
. credit- or calling-card account number (or not)
. country code (or not)
. area code (or not)
. the phone number itself
. who knows what else -- an extension, a call-processing dialog, etc.
The order of these items might vary, the procedure for making the
transition from one to the next might vary, and so on. And, obviously,
sensitive items such as calling-card numbers must NOT be entered in the
dialing directory, but must be indicated by placeholders to substituted
(or not!) at dial-time.
So... given all the above, what can reasonably be expected of a dialing
directory, and what kinds of simplifying assumptions or techniques can we
use not only to implement it, but to make it easy to understand and
therefore to use?
I'm looking for ideas, opinions, and detailed information about dialing
methods used in all parts of the world. Any information you send will be
much appreciated and, hopefully, will end up making life easier (or harder)
for modem users everywhere (or nowhere).
Thanks!
- Frank